#include "abr.h"

typedef struct abge
{
  struct nodi *varloc;
  struct ll *fils;
  struct fct *list;
}abg;

typedef struct lli
{
  abg *fils;
  struct lli *next;
}ll;

typedef struct fcti
{
  char *contenu;
  char *name;
  char *type;
  nodi *var;
}fct;

typedef struct stak
{
  struct fct *foo;
  int len;
  struct stak *head;
  struct stak *down;
}stack;


typedef struct abh
{
  char *op;
  struct abh *fg;
  struct abh *fd;
}ab;

/*Operations sur les ab pour estbool*/
char *suprpar(char *str, int j,int k);
int estBoolen(char *str);
ab *fusion(char *str, int l,int *i,int *j);
void afficher(ab *hey);
int checkcaract(char c);
int checkxpr(char *str);
int checksymbole(char c);
int checksymbd(char c);
int checksymbs(char c);
void estvraie(nodi *abr,char *str);
int validexpr(char*,char*,char*);
int estBooleen(char *str);

/*Operations sur les listes*/

int add_ll(ll *linke, ll *tmp);
int createllelmt (ll *linke, abg tmp);
ll search(ll *linke, char *key);

/*Operations sur piles*/

stack *push(stack *pile, int i);
stack *pop(stack *pile);
void destroystack(stack *pile);
